(function(window,undefined){
	var Star = function(config){
		this.init(config);
	}
	
	Star.prototype = {
		constructor:Star,
		init(config){
			var _this=this;
			_this.callback = config.callback || function (){}
			// 实例化Dom
			_this.InnderHtml(config);
		},
		InnderHtml(config){
			var _this=this;
			// 默认数据
			var defaultData = config.wheels;
			//实例化better
			var qs="";
			//默认数据
			var morenDefault=0;
			// 弹起选择层
			$("#"+config.id).click(function(){
				morenDefault=$("#"+config.id).data("id")?(defaultData.findIndex(v => v.id === $("#"+config.id).data("id"))):(defaultData.findIndex(v => v.id === config.default));
				var dom=`<div class="potatoCustomTan hide">
						<div class="potatoCustomZhezhao potatoCustomTanRemo"></div>
						<div class="potatoCustom">
							<p class="potatoCustomTitle">${config.title}</p>
							<div class="potatoCustom1" id="betterWrapper">
								<ul class="potatoCustom2"></ul>
							</div>
							<div class="potatoCustomButton">
								<span class="potatoCustomTanRemo">取消</span>
								<span class="potatoCustomTanOk">确定</span>
							</div>
						</div>
					</div>`
				$("#"+config.id).after(dom);
				// 数据渲染
				let html=[];
				defaultData.forEach((item,index)=>{html.push(`<li data-id="${item.id}">${item.value}</li>`)})
				$(".potatoCustom2").html(html)
				
				$(".potatoCustomTan").removeClass("hide");
				setTimeout(function(){
					$(".potatoCustomZhezhao").addClass("potatoCustomZhezhao_tr")
					$(".potatoCustom").addClass("potatoCustom_tr")
					better_scroll();//实例化better
					
					if(defaultData.findIndex(v => v.id === config.default)!=-1 || defaultData.findIndex(v => v.id === $("#"+config.id).data("id"))!=-1){
						// 默认值滚动到指定位置
						let morenDefault1=($(".potatoCustom2 li").eq(morenDefault).offset().top-$(".potatoCustom2 li").offset().top)-(($(".potatoCustom1").height() - $(".potatoCustom2 li").eq(morenDefault).height())/2);
						defaultWei(morenDefault1);// 滚动到默认位置
						centerScroll($(".potatoCustom2 li").eq(morenDefault));
						$(".potatoCustom2 li").eq(morenDefault).addClass("potatoCustomliColor");
					}
					
				},30)
				
				// 弹层取消
				$(".potatoCustomTanRemo").click(function(){
					hideareas();
				})
				// 确定
				$(".potatoCustomTanOk").click(function(){
					hideareas();
					let data={
						id:$(".potatoCustom2").find("li.potatoCustomliColor").data("id") || "",
						value:$(".potatoCustom2").find("li.potatoCustomliColor").html() || "",
					}
					$("#"+config.id).data("id",data.id)
					// 返回前台data数据
					_this.callback(ReturnData(data))
				})
				// li点击事件
				$(".potatoCustom2").on("click","li",function(){
					$(this).addClass("potatoCustomliColor");
					$(this).siblings().removeClass("potatoCustomliColor");
					/* 自动居中滚动逻辑 */
					centerScroll($(this));
				})
			})
			/* 自动居中滚动逻辑 */
			function centerScroll(data){
				// 容器的中间值
				let cenNum=($(".potatoCustom1").height() - data.height())/2;//中间值
				// li相对于父元素的top值
				let offsetNum = data.offset().top-$(".potatoCustom2 li").offset().top;
				// /目标值
				let targetOffset  = -(offsetNum - cenNum);
				if (-targetOffset < 0) {
					qs.scrollTo(0,0,500)
					return;
				}else if(targetOffset < ($(".potatoCustom1").height() - $(".potatoCustom2").height())){
					let topNum=($(".potatoCustom1").height() - $(".potatoCustom2").height());
					qs.scrollTo(0,topNum,500)
					return;
				}else{
					 qs.scrollTo(0,targetOffset,500)
				}
			}
			// 返回callback数据
			function ReturnData(data){
				return data
			}
			// 取消弹层
			function hideareas(){
				$(".potatoCustomZhezhao").removeClass("potatoCustomZhezhao_tr")
				$(".potatoCustom").removeClass("potatoCustom_tr")
				setTimeout(function(){
					$(".potatoCustomTan").addClass("hide");
					$(".potatoCustomTan").remove();
				},600)
			}
			// 滚动到默认位置
			function defaultWei(val){
				qs.scrollTo(0,-val,500)
			}
			// 实例化brtter_scroll滚动
			function better_scroll() {
				var wrapper = document.getElementById("betterWrapper")
				qs = BetterScroll.createBScroll(wrapper, {
					scrollY:true,
					mouseWheel: {
						speed: 20,
						invert: false,
						easeTime: 500,
					},
					click:true,
					tap:true,
				})
			}
		},
	}
	window.Star = window.Star || Star;
}(window))